/*******************************************************************************
* Copyright 2007-2013 See AUTHORS file.
 * 
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* 
*   http://www.apache.org/licenses/LICENSE-2.0
* 
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package xworker.swt;

import org.eclipse.swt.widgets.Widget;
import org.xmeta.ActionContext;
import org.xmeta.Thing;
import xworker.swt.actions.ActionsBinder;

public class WidgetsActionsCreator {
    //xworker.swt.Widgets/@actions/@actions/@create
    public static Object create(ActionContext actionContext){
    	Thing self = (Thing) actionContext.get("self");

    	//创建动作容器
        ActionContainer scriptContainer = new ActionContainer(self, actionContext);
        for(Thing ext : self.getExtends()) {
        	scriptContainer.append(ext);
        }

        //动作绑定
        String binds = self.doAction("getBinds", actionContext);
        if(binds != null && !binds.isEmpty()){
            ActionsBinder.bind((Widget) actionContext.get("parent"), scriptContainer, binds, actionContext);
        }

        //保存到全局变量上下文中
        actionContext.getScope(0).put(self.getString("name"), scriptContainer);

        return scriptContainer;
    }

}